Location-based services involve providing information, application features, or options that are tailored to a current location of an end user. To implement a location-based service, a location-aware analysis is performed to link a location of the end user and a location of another entity, such as a point of interest (POI), involved in the location-based service. Generally, a location-aware analysis entails determining a distance between the end user and a POI or determining relative proximities between the end user and multiple different POIs. Thus, a location-aware analysis typically utilizes two pieces of information: a location of the end user and a location of at least one POI. The location of the end user can be determined by an end-user device on an individual basis using e.g. global positioning system (GPS) technology.
The location of the POI, however, can be more difficult to determine, especially from the perspective of the end-user device. POIs may number in the hundreds, thousands, or even millions. End-user devices, particularly mobile ones like smart phones, have constrained processing, memory, and power resources. These constrained resources render infeasible a determination by a mobile device of a location of a proximate POI from among a multitude of POIs. Data centers, however, have access to thousands of server devices and can handle the processing, memory, and power demands to perform real-time location-aware analyses involving even millions of POIs. Thus, an end-user device may need to communicate with a cloud-based information system to obtain the location of proximate POIs. The results of a given location-aware analysis, such as a listing of proximate or relevant POIs, can then be downloaded to an end-user device for use in providing a location-based service.
This cloud-oriented model can provide satisfactory performance for providing location-based services if a number of conditions are all present. First, a connection should be maintainable essentially constantly between the end-user device and the cloud-based functionality. Second, the connection should have sufficient bandwidth to download to the end-user device the results of the location-aware analysis. Third, use of the connection should not be unduly costly for the end user. Unfortunately, this cloud-oriented model breaks down in a mobile environment because any of these three conditions can fail in a wireless connection scenario. First, wireless connectivity is not guaranteed. Also, wireless connections generally offer lower bandwidth as compared to wired connections. Furthermore, most cellular connections are metered such that each byte of data directly or indirectly incurs some cost to the end user.
Consequently, it can be difficult to deliver location-based services to the very devices that can benefit most from such services, namely mobile devices. On the one hand, a mobile device is too resource constrained to be capable of effectively handling the demands of processing relevant information about the multitude of POIs that are potentially involved in a location-aware analysis, especially without adversely impacting an end user's ability to utilize the mobile device for other purposes. On the other hand, when a mobile device is in motion and location-based services are therefore more likely to be pertinent, the mobile device may be unable to secure a sufficiently reliable wireless connection to enable the results of a cloud-oriented location-aware analysis to be provided to the mobile device, especially in a timely manner.